package avaliacao.Handler;

import avaliacao.Constantes;
import avaliacao.DTO.DTOAvaliador;
import avaliacao.DAO.DAOAvaliador;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginHandler implements HandlerInterface{
    private DAOAvaliador daoAvaliador = new DAOAvaliador();

    public String process(HttpServletResponse response, HttpServletRequest request) {

        DTOAvaliador avaliador =  new DTOAvaliador();

        String login = request.getParameter(Constantes.MEC_LOGIN_FORM_CAMPO);
        String senha = request.getParameter(Constantes.MEC_SENHA_FORM_CAMPO);

        avaliador.setLogin(login);
        avaliador.setSenha(senha);
        
        if((verificarLogin (avaliador)) == true)
        {
            /** Como o programa pode ser acessado pela Web, logo
             * varias pessoas podem utiliza-lo ao mesmo tempo
             * este valor deve estar guardado na Sessao */
            request.getSession().setAttribute(Constantes.MEC_ATRIBUTO_AVALIADOR, avaliador);
            if (avaliador.getGrupo().equals(Constantes.MEC_GRUPO_ADMIN))
                return "/principalAdmin.jsp";
            else if(avaliador.getGrupo().equals(Constantes.MEC_GRUPO_AVALIADOR))
                return "/principalAvaliador.jsp";

             return "/login.jsp";
        }
        else
        {
            String resultado = Constantes.MEC_ERR_LOGIN_INVALIDO;
            request.setAttribute(Constantes.MEC_ATRIBUTO_STATUS, resultado);
            return "/login.jsp";
        }
    }

    private boolean verificarLogin (DTOAvaliador avaliador)
    {
       daoAvaliador.getAvaliadorInfo(avaliador);

        if (avaliador.getID() == -1)
            return false;

        return true;
    }
}
